home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / utility / 1a / demos / habba5.s < prev    next >
Encoding:
Text File  |  1985-05-29  |  2.9 KB  |  169 lines

  1.  ;ST Color Palette by Tom Hudson
  2.  ;Habba Hippo 'C' modifications by John Kurvink
  3.  ;Asm and link by typing ld color.o st512.o<ret>
  4.  ;main changes were taking out equates and performing
  5.  ;math in statements that used equates previously
  6.  ;also since Movem,DC,DS aren't supported changes were made
  7.  ;to those statements
  8.  
  9.  
  10.   .global _go
  11.   .global _stop
  12.   .global _ctable
  13.   .global _setcolor
  14.   .global _setpallete
  15.  
  16.  
  17.  
  18.   .text
  19.  
  20.  ; call setup in supervisor mode
  21.  
  22.  
  23. _go:
  24.  
  25.   move.l #setup,-(sp)
  26.   move.w #38,-(sp)
  27.   trap #14
  28.   addq.l #6,sp
  29.   rts
  30.  
  31. setup:
  32.  
  33.   move.w #$f888,$ff8240
  34.  
  35.  
  36.   move.b $fffa09,hold1
  37.   move.b $fffa07,hold2
  38.   move.b $fffa13,hold3
  39.   move.l $120,hold4
  40.   move.l $118,keysave
  41.   move.l $70,vbsave
  42.  
  43.   move.l #mykey,$118
  44.   andi.b #$df,$fffa09
  45.   andi.b #$fe,$fffa07
  46.   move.l #hblank,$120
  47.   ori.b #$01,$fffa07
  48.   ori.b #$01,$fffa13
  49.   move.l #vblank,$70
  50.   rts
  51.  
  52. _stop:
  53.  
  54.   move.l #restore,-(sp)
  55.   move.w #38,-(sp)
  56.   trap #14
  57.   addq.l #6,sp
  58.   rts
  59.  
  60.  
  61. restore:
  62.  
  63.   move.b hold1,$fffa09
  64.   move.b hold2,$fffa07
  65.   move.b hold3,$fffa13
  66.   move.l hold4,$120
  67.   move.l keysave,$118
  68.   move.l vbsave,$70
  69.   rts
  70.  
  71. mykey:
  72.  
  73.   move #$2500,sr
  74.   .word $4ef9
  75. keysave: .space 8
  76.  
  77.  
  78. hblank:
  79.  
  80.   movem.l  #$ffff,-(sp)  ;this is how to force the Movem.l to work using
  81.                          ;Hippo 'C' ??? Assembler
  82.  
  83.   move.w  cix,d0
  84.   move.l #_ctable,a0
  85.   move.l 0(a0,d0.w),$ff8242
  86.   move.l 4(a0,d0.w),$ff8246
  87.   move.l 8(a0,d0.w),$ff824a
  88.   move.l 12(a0,d0.w),$ff824e
  89.   addi.w #16,cix
  90.   movem.l (sp)+,#$ffff   ;Hippo doesn't support movem properly so
  91.                          ;this was how I forced the intructions to execute
  92.   bclr #0,$fffa0f
  93.   rte
  94.  
  95. vblank:
  96.  
  97.   move.b #0,$fffa1b
  98.  
  99. verify:
  100.  
  101.   move.b #3,$fffa21
  102.   cmpi.b #3,$fffa21
  103.   bne verify
  104.   move.b #8,$fffa1b
  105.   move.l _ctable,$ff8242
  106.   move.l _ctable+4,$ff8246
  107.   move.l _ctable+8,$ff824a
  108.   move.l _ctable+12,$ff824e
  109.   move.w #16,cix
  110.   addq.w #1,$ff8252
  111.   .word $4ef9
  112. vbsave: .space 8
  113.  
  114. _setcolor:
  115.  
  116.   link a6,#-6
  117.   move.w 10(a6),(sp)
  118.   move.w 8(a6),-(sp)
  119.   move.w #7,-(sp)
  120.   trap #14
  121.   unlk a6
  122.   rts
  123.  
  124.  
  125. _setpallete:
  126.  
  127.   link a6,#-6
  128.   move.l 8(a6),(sp)
  129.   move.w #6,-(sp)
  130.   trap #14
  131.   unlk a6
  132.   rts
  133.  
  134.   .data
  135.  
  136. cix: .space 2
  137.  
  138. _ctable: .space 1024
  139.  
  140. hold1: .space 2
  141. hold2: .space 2
  142. hold3: .space 2
  143. hold4: .space 8
  144. əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəlastg != grnval[0]) || (lastb != bluval[0]))
  145.       {
  146.         v_hide_c(handle);
  147.         vst_color(handle,11);
  148.         v_gtext(handle,256,199,redval);
  149.         vst_color(handle,14);
  150.         v_gtext(handle,264,199,grnval);
  151.         vst_color(handle,12);
  152.         v_gtext(handle,272,199,bluval);
  153.         v_show_c(handle,0);
  154.         lastr=redval[0];
  155.         lastg=grnval[0];
  156.         lastb=bluval[0];
  157.       }
  158.      }
  159.    }
  160.  
  161. stop();
  162. setpallete(oldpal);
  163.  
  164. v_clsvwk(handle);
  165.  
  166. appl_exit();
  167.  
  168. }
  169. əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə